1. Field of the Invention
The present invention relates in general to distributed computing, and more particularly to parallel computing and web computing. This method is disclosed first in a paper entitled xe2x80x9cGlobal Sideband Distributed Computing Methodxe2x80x9d on Jan. 13, 1988 at the Western MultiConference (WMC""98) by the Society for Computer Simulation (SCS).
2. Description of the Related Art
1) In the Internet, there are a lot of CPU resources that are far from being fully utilized
The computer industry is a fast growing industry. Every day faster computers are introduced to the world. From the Intel 8086 to the Pentium, CPU speed has more than tripled. However, the utilization of CPU power still can not keep up with the growth of the computer chip industry. As a result, there are more and more idle CPU cycles in computers in the world. For example, a typical office computer would be idle 80% of the time and most home computers are used only as Email and news reader or word processors that consume less than 30% of the computing power for a modem Pentium CPU.
On the other hand, the need for larger computing power is not decreasing. For example, complex differential equations, neural network simulations and other design tasks at big entities such as GM or NASA certainly have strong demands for huge computing power. One way to fulfill those demands is a supercomputer which is 10 to 100 times faster than a desktop PC. However, the expense is so high that it is normally beyond the budget. Another good solution is distributed computing. However, traditional distributed computing has some limits that are not easy to overcome.
Since there is much more idle CPU power worldwide, if we can develop a method to utilize it, we can save a lot of wasted processing power. This invention discloses a new methodxe2x80x94a global sideband service distributed computing method to achieve that goal.
2) Traditional distributed computing has a lot of limits
Normally, in distributed computing, we can access more computer power, memory and I/O bandwidth by connecting several machines together. Groups of machines can provide high performance more cheaply than traditional supercomputers. Based on this concept, people have developed several distributed systems such as PVM, MPP or recently CORBA and JOE.
However, there are some limits that are uneasy to overcome. For example, one limit is the maximum number of computers in a group. PVM sets a maximum number of computers at 4095. Some methods are based on a local network. As a result, it is difficult to enable distributed computing in a worldwide environment.
Another prominent dissatisfying limit is accessing each participating computer. For example, in PVM, if a user wants 1000 computers to work together, he has to physically locate them and obtain accounts from each node. It also limits the scalability in that no idle computer in the world is allowed to join the distributed computing group freely.
Pat. WO 98/00780 entitled xe2x80x9cClientxe2x80x94Server Technique for Distributed Computingxe2x80x9d disclosed a method for remotely running server applications through a web interface. It is useful for client administration and metering of application usage but is not a general distributed computing method. U.S. Pat. No. 5,740,362 entitled xe2x80x9cManagement of Network Distributed Agents in a Distributed Computing Environmentxe2x80x9d disclosed a method providing a single access point for resources distributed within a network but traditional limits still apply.
In summary, the premise of a traditional solution is that a user already has direct access to all the participating computers. This requires the user either physically owning the computers or having to pay for their use. Therefore the expense is not ignorable and sometimes is not practical. Furthermore, it doesn""t make use of many idle computers scattered around the world.
The method disclosed here, to some extent, can overcome these limitations. It is significantly different from traditional distributed computing methods.
3) network servers can attract enormous numbers of clients
As the Internet is growing hotter, more computers are getting connected. In 1993, there were 2,152,000 hosts on the Internet and it is estimated to have 100,000,000 in 1998. Together with the invention and development of many new tools and technologies such as WWW, CGI, JAVA, CORBA and so on, Internet services are also becoming common to users. In principle, any host that offers some service can be regarded as a server, like a web server, gopher server, news server, chat server or game server.
Most network servers are designed on a clientxe2x80x94server basis in which clients connect to a server, begin a conversation to get information or perform an operation. This conversation is also called a transaction or session. Usually, the server is the information provider and the client is the receiver. The goal of the service provider is to attract as many users (clients) as possible.
Because of the infinite size of the Internet, popular servers have many clients. For example, very hot web servers such as the Yahoo search engine could be accessed nearly 10,000 to 1,000,000 times daily. It is also common that at a given time, a game server could have thousands of clients implementing a fighting or mud game for hours per day. Statistics show that during the games between Deep Blue and Kasparov last year, the news web page of IBM""s Deep Blue was accessed more than 1 million times per day.
Here we can see that good servers entice many users to access, thus there is an opportunity for the server to distribute tasks to them during conversations. This is the basis of our sideband service method.
4) Sideband service is another channel of conversation between client and server
Under normal situations, the server provides information, service or something else and the client receives them passively. If the server asks the clients to perform some tasks for it, then the role for both sides is reversed and usually another separate conversation must be set up. This type of connection only exists when clients connect to a server for the service it requires and cannot exists by itself. The term sideband channel (or separate dedicated communication channel) is derived from this scenario.
Since most computers on the Internet have quite huge amounts of idle CPU time, it is natural that the server can use it for parallel computing. The only limit is that the tasks the client can perform shouldn""t influence the overall performance of the client computer, nor should it take too much time (longer than normal conversation). The client might need to transfer back results to the server. Therefore by assigning different tasks to different clients, the server can acquire huge amounts of computer time since the number of clients can be very large (more than 1 million per day in some cases).
In sideband service, the relationship between client and server is reversed in the process of computing. For sideband service, clients performing some task for the server may be regarded as a dynamic server since it serves as a xe2x80x9ccomputing serverxe2x80x9d.
5) Benefit of the sideband service computing method
There are at least two benefits of sideband service: one is that if many many clients work together, we can achieve something that is hard or impossible by a single computer. The other is that commercial value can arise from sideband service, as it could be regarded as a service charge to maintain the normal network service.
In summary, in sideband distributed computing, the server can ask all clients to work for it at the same time the server provides the clients some service. Clients gain access to the service and in return, they pay back with part of their idle computing resource. It is the computing power contributed by all clients that makes up our whole distributed system.
6) No other methods to date can make use of idle CPU resources on the Internet while being acceptable to the public.
Some other methods such as network advertisers exchange their services with advertising. Clients have to download and read ads when they access web pages. However, network advertising can not allow clients to contribute their idle CPU resources, nor can the network server gain more computing power from clients. Similar to banner ads, network surveys is another example which require users to fill out survey forms in return for getting xe2x80x9cfreexe2x80x9d services.
Other distributed computing methods either require direct access to client machines or special setup. Normally, it consists of a lot of static nodes and each node runs some daemon dedicated to computing. In other words, all nodes are full-time contributors. The aforementioned scenario is unlike sideband service, which only contributes one""s free idle CPU resources when it connects to get service from the server. Therefore, the present invention is a win win, mutually beneficial procedure.
If we can force each client to perform one small chunk of tasks, we can accumulate much more computing time than any single computer because of the enormous number of computers on the Internet.
This invention provides a computer implemented method for a network server to gain enormous computing power from the Internet by exchanging services with clients"" idle CPU time. Each client who visits the server will be assigned small pieces of computing tasks from the server when it requests service from the server. By dividing big computing tasks into multiple chunks of computing tasks, assigning then to each client dynamically and collecting results after the client finishes, the server can accumulate huge amounts of computing power. The hotter the server, the more computing power the server can obtain. Thus we can turn a network server into a supercomputer without much expense using this method, since we are using idle CPU time from all the clients.